package cn.xiaobai.captcha.annotation;

import cn.xiaobai.captcha.config.CustomTypeOnPropertyConditional;
import org.springframework.context.annotation.Conditional;

import java.lang.annotation.*;

/**
 * @Author yangdaji
 * @Date 2024/4/22
 * @PackageName cn.xiaobai.captcha.annotation
 * @ClassName CustomConditionalOn
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@Documented
@Conditional(CustomTypeOnPropertyConditional.class)
public @interface CustomConditionalOnProperty {

    /**
     * 条件 key
     *
     * @return
     */
    String name() default "";

    /**
     * 匹配的值, 支持 or 条件
     *
     * @return
     */
    String[] havingVale() default {};

    /**
     * 是否默认创建, 对于在配置中写了名称而并没有指定值时采用默认创建
     * true: 没填写任何名称, 或者只填写名称, 则根据默认进行创建
     * false(默认): 根据名称和匹配值进行匹配
     *
     * @return
     */
    boolean isDefault() default false;

}
